package com.huidao.service;

import java.io.BufferedWriter;
import java.io.IOException;
import java.util.Date;
import java.util.List;

import com.huidao.domain.Role;
import com.huidao.domain.User;

/**
 * 注册用户逻辑
 */
public class RegistService extends UserService {
	// 定义一个全局变量，用来自动改变用户Id
	private static int num = 1;

	/** 用户注册
	 *status控制注册类型 
	 */
	public  void regist(int status) {
		if (status == 1) {
			System.out.println("注册普通用户");
			System.out.println("请输入用户名：");
			String name = sc.next();
			System.out.println("请输入密码：");
			String psd = sc.next();
			StringBuilder nameId = new StringBuilder("IP000001");
			Role role = new Role(Long.toString(System.currentTimeMillis()),
					"普通用户", new Date());
			// 将用户信息封装到User中
			User registUser = new User(nameId.append(Integer.toString(num))
					.toString(), name, psd, role, role.getDate(), true);
			// 首先判断用户是否存在
			if (!(exist(name, registUserList))) {
				StringBuilder mes = new StringBuilder();
				mes.append(name).append("=").append(psd);
				try {
					// 讲用户信息写入
					bwUser.write(mes.toString());
					bwUser.newLine();
					bwUser.flush();
					System.out.println("恭喜注册成功，请您记住您的用户名及密码");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				// 将注册好的用户名和密码加入到集合中
				registUserList.add(mes.toString());
				userList.add(registUser);
				num++;
				return ;
			}
			System.out.println("注册失败，重新注册");
			regist(status);
		}
		if (status == 2) {
			System.out.println("注册收银员");
			System.out.println("请输入用户名：");
			String name = sc.next();
			System.out.println("请输入密码：");
			String psd = sc.next();
			StringBuilder nameId = new StringBuilder("Cashier001");
			Role role = new Role(Long.toString(System.currentTimeMillis()),
					"收银员", new Date());
			// 将用户信息封装到User中
			User registUser = new User(nameId.append(Integer.toString(num))
					.toString(), name, psd, role, role.getDate(), true);
			// 首先判断用户是否存在
			if (!(exist(name, list))) {
				StringBuilder mes = new StringBuilder();
				mes.append(name).append("=").append(psd);
				try {
					// 讲用户信息写入
					bw.write(mes.toString());
					bw.newLine();
					bw.flush();
					System.out.println("恭喜注册成功，请您记住您的用户名及密码");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				// 将注册好的用户名和密码加入到集合中
				list.add(mes.toString());
				managerList.add(registUser);
				num++;
				return;
			}
			System.out.println("注册失败，重新注册");
			regist(status);
		}
	}
}
